package com.kitten.comment.service;

import com.kitten.comment.model.vo.*;
import com.kitten.framework.common.response.PageResponse;
import com.kitten.framework.common.response.Response;

/**
 * @author kitten
 */
public interface CommentService {

    Response<?> publishComment(PublishCommentReqVO publishCommentReqVO);

    /**
     * 分页查询评论列表
     * @param findCommentPageListReqVO
     * @return
     */
    PageResponse<FindCommentItemRspVO> findCommentPageList(FindCommentPageListReqVO findCommentPageListReqVO);

    /**
     * 分页查询子评论列表
     * @param findChildCommentPageListReqVO
     * @return
     */
    PageResponse<FindChildCommentPageListRspVO> findChildCommentPageList(FindChildCommentPageListReqVO findChildCommentPageListReqVO);

    /**
     * 点赞评论
     * @param likeCommentReqVO
     * @return
     */
    Response<?> likeComment(LikeCommentReqVO likeCommentReqVO);

    /**
     * 取消点赞评论
     * @param unlikeCommentReqVO
     * @return
     */
    Response<?> unlikeComment(UnlikeCommentReqVO unlikeCommentReqVO);

    /**
     * 删除评论
     * @param deleteCommentReqVO
     * @return
     */
    Response<?> deleteComment(DeleteCommentReqVO deleteCommentReqVO);

    /**
     * 删除评论本地缓存详情
     * @param commentId
     */
    void deleteCommentLocalCache(Long commentId);

}
